import aima.core.agent.Action;
import aima.core.search.framework.ResultFunction;


public class Puzle8ResultFunction implements ResultFunction {
	
	public Object result(Object s, Action a) {
		EstadoPuzle8 estado = (EstadoPuzle8) s;
		if (EstadoPuzle8.A.equals(a)) {
			EstadoPuzle8 nuevoEstado = new EstadoPuzle8(estado);
			nuevoEstado.moveA();
			return nuevoEstado;
		}
		else if (EstadoPuzle8.D.equals(a)) {
			EstadoPuzle8 nuevoEstado = new EstadoPuzle8(estado);
			nuevoEstado.moveD();
			return nuevoEstado;
		}
		else if (EstadoPuzle8.I.equals(a)) {
			EstadoPuzle8 nuevoEstado = new EstadoPuzle8(estado);
			nuevoEstado.moveI();
			return nuevoEstado;
		}
		else if (EstadoPuzle8.V.equals(a)) {
			EstadoPuzle8 nuevoEstado = new EstadoPuzle8(estado);
			nuevoEstado.moveV();
			return nuevoEstado;
		}
		return s;
	}
}
